import varaibles from "@/style/variables.module.scss"
export const useSettingStore = defineStore(
  "setting",
  () => {
    // 选择一个颜色，现在正在应用的颜色
    const settings = reactive({
      theme: varaibles.theme,
      originalTheme: "",
      tagsView: false, //是否显示tags,
      sidebarLogo: true //是否显示logo
    })
    type ISetting = typeof settings //定义了一个类型别名 ISetting，表示 settings 对象的类型。

    const changeSetting = <T extends keyof ISetting>({
      //<T extends keyof ISetting>确保 key 参数只能是 ISetting 对象的有效键，value 参数的类型是 ISetting 对象中 key 对应的值的类型。
      key,
      value
    }: {
      key: T
      value: ISetting[T]
    }) => {
      settings[key] = value
    }
    return { changeSetting, settings }
  },
  {
    persist: {
      storage: sessionStorage,
      pick: ["settings.theme", "settings.tagsView", "settings.sidebarLogo"]
    }
  }
)
